A CAPTCHA (Completely Automated Public Turing Test to Tell Computers and Humans Apart) is a program that protects websites against automated programs (bots) by generating and grading tests that humans can pass, but current computer programs either cannot or have difficulty passing. For example, humans can read distorted text, but a computer program may not be able to. A CAPTCHA is sometimes referred to as a reverse Turing test, as it is the computer testing a human and not the other way around.
A CAPTCHA acts as a security mechanism by requiring a correct answer to a question, which only a human can answer any better than a random guess. Humans have speed limitations, and hence, cannot replicate the impact of an automated program. Thus the basic requirement of a CAPTCHA is that computer programs must be slower than humans in responding correctly. CAPTCHAs are useful for several applications, including, but not limited to: preventing comment spam in blogs, protecting website registration, protecting e-mail addresses from web scrapers, online polls, preventing dictionary attacks in password systems, and even preventing worms and spam in e-mail.
Many CAPTCHA challenges are image based, presenting a written word, a picture, or a series of words or pictures. These images are distorted and arranged to make it difficult for an automated program to decipher them. However, these methods do not work for visually impaired individuals. CAPTCHA challenges have been devised that present the challenge to a user through auditory signals. Generally, a single word is presented via an audio clip to the user, and the user types in the word heard. To make this a more difficult process for an automated program, the spoken word is often masked by various background noises. However, the added noises tend to make the challenge difficult for human users as well.